查看原文
其他

Centos7初始化适合k8s运行的系统环境

木讷大叔爱运维 木讷大叔爱运维 2022-07-13


点击上方蓝色字体,关注我们


如果你想部署一套k8s环境,那么首先需要为其进行初始化,本文将基于Centos7进行初始化。


1.设置主机名

hostnamectl set-hostname xxxx

2.安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

3.设置防火墙为iptables并清空规则

yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save

4.关闭sellinux

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

5.关闭swap

swapoff -a# 关闭开机启动sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

6.配置ulimit值

cat >> /etc/security/limits.conf << EOF* soft nofile 102400* hard nofile 102400* soft nproc 102400* hard nproc 102400EOF

7.调整内核参数

cat > kubernetes.conf <<EOFnet.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1net.ipv4.tcp_tw_recycle=0# 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它vm.swappiness=0 # 不检查物理内存是否够用vm.overcommit_memory=1 # 开启 OOMvm.panic_on_oom=0 fs.inotify.max_user_instances=8192fs.inotify.max_user_watches=1048576fs.file-max=52706963fs.nr_open=52706963net.ipv6.conf.all.disable_ipv6=1net.netfilter.nf_conntrack_max=2310720EOFcp kubernetes.conf /etc/sysctl.d/kubernetes.confsysctl -p /etc/sysctl.d/kubernetes.conf

8.调整系统时区

# 设置系统时区为中国/上海timedatectl set-timezone Asia/Shanghai# 将当前的 UTC 时间写入硬件时钟timedatectl set-local-rtc 0

9.关闭系统不需要的服务

systemctl stop postfix && systemctl disable postfix

10.升级内核4.4

Centos7.x系统自带的3.10.x内核存在一些bug,导致运行的Docker 、k8s不稳定,例如报报如下错误:

kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1

问题已于4.4内核解决,因此需要升级内核

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm#安装完成后检查/boot/grub2/grub.cfg 中对应内核menuentry中是否包含initrd16配置,如果没有,再安装yum --enablerepo=elrepo-kernel install -y kernel-lt
# 查看启动顺序awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg CentOS Linux (4.4.227-1.el7.elrepo.x86_64) 7 (Core)CentOS Linux (3.10.0-1127.10.1.el7.x86_64) 7 (Core)CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)CentOS Linux (0-rescue-e3d4048ea345425ea1f89398b331aab1) 7 (Core)#设置开机从新内核启动grub2-set-default "Centos Linux (4.4.227-1.el7.elrepo.x86_64) 7 (Core)"
# 重启reboot


11.kube-proxy开启ipvs的前置条件

在kubuernetes v1.14版本开始默认使用ipvs代理。如果系统没有安装ipvs,安装k8s时会自动退化使用iptables代理。

yum -y install ipvsadm ipsetmodprobe br_netfiltercat > /etc/sysconfig/modules/ipvs.modules <<EOF#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrack_ipv4EOFchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&lsmod | grep -e ip_vs -e nf_conntrack_ipv4









您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存